﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using QLNhaSach.BUS;
using QLNhaSach.BUS.DTO;

namespace QLNhaSach.GUI.NhanVienAdmin
{
    public partial class QuanLyTaiKhoan : Form
    {
        DataTable dt = new DataTable();
        NhanVienDTO nv = new NhanVienDTO();
        public QuanLyTaiKhoan()
        {
            InitializeComponent();
        }

        private void buttonX1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

       
        private void lvDSNV_SelectedIndexChanged(object sender, EventArgs e)
        {
            int index = lvDSNV.FocusedItem.Index;
            if (index != -1)
            {
                DataRow dr = dt.Rows[index];
                //lbTenNV.Text = dr["HoTen"].ToString();

                //Danh dau phan quyen cua nhan vien
                if (Convert.ToInt16(dr["PhanQuyen"]) == 2)
                    rbNVQuanLy.Checked = true;
                else if (Convert.ToInt16(dr["PhanQuyen"]) == 1)
                    rbNVAdmin.Checked = true;
                else if (Convert.ToInt16(dr["PhanQuyen"]) == 3)
                    rbNVQLSach.Checked = true;
                else if (Convert.ToInt16(dr["PhanQuyen"]) == 4)
                    rbNVKeToan.Checked = true;
                else if (Convert.ToInt16(dr["PhanQuyen"]) == 5)
                    rbNVBanSach.Checked = true;

                //Danh dau tinh trang
                if (Convert.ToInt16(dr["TinhTrang"]) == 1)
                    rbChoPhep.Checked = true;
                else
                    rbKhongChoPhep.Checked = true;

                nv.MaNV = Convert.ToInt16(dr["MaNV"]);
                //nv.NgaySinh = Convert.ToDateTime(dr["NgaySinh"]);
                nv.HoTen = dr["HoTen"].ToString();
                nv.PhanQuyen = Convert.ToInt16(dr["PhanQuyen"]);
                //nv.GioiTinh = Convert.ToInt16(dr["GioiTinh"]);
                //nv.UserName = dr["Username"].ToString();
                //nv.PassWord = dr["Password"].ToString();
                nv.TinhTrang = Convert.ToInt16(dr["TinhTrang"]);
            }
        }

        #region Form load
        private void QuanLyTaiKhoan_Load_1(object sender, EventArgs e)
        {
            dt = NhanVienAdminBUS.HienThiNhanVien();
            lvDSNV.Items.Clear();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow dr = dt.Rows[i];
                ListViewItem item = new ListViewItem();
                item.Text = dr["MaNV"].ToString();
                item.SubItems.Add(dr["HoTen"].ToString());
                int pq = Convert.ToInt16(dr["PhanQuyen"]);
                string phanquyen = "";
                if (pq == 1)
                    phanquyen = "Admin";
                else if (pq == 2)
                    phanquyen = "Quản lý";
                else if (pq == 3)
                    phanquyen = "Quản lý sách";
                else if (pq == 4)
                    phanquyen = "Kế toán";
                else if (pq == 5)
                    phanquyen = "Bán sách";
                item.SubItems.Add(phanquyen.ToString());
                item.SubItems.Add(dr["TinhTrang"].ToString());
                lvDSNV.Items.Add(item);
            }
        }
        #endregion

        #region Cap nhap
        private void btnCapNhap_Click(object sender, EventArgs e)
        {
            if (nv.MaNV == 0)
            {
                MessageBox.Show("Hãy chọn một nhân viên cần cập nhập");
                return;
            }

            if (rbChoPhep.Checked == true)
                nv.TinhTrang = 1;
            else
                nv.TinhTrang = 0;
            if (rbNVBanSach.Checked == true)
                nv.PhanQuyen = 5;
            else if (rbNVKeToan.Checked == true)
                nv.PhanQuyen = 4;
            else if (rbNVQLSach.Checked == true)
                nv.PhanQuyen = 3;
            else if (rbNVQuanLy.Checked == true)
                nv.PhanQuyen = 2;
            else
                nv.PhanQuyen = 1;
            if (NhanVienAdminBUS.CapNhapPhanQuyen(nv) == NhanVienAdminBUSResult.OK)
                MessageBox.Show("Cập nhập phân quyền và tình trạng đăng nhập thành công");
            else
                MessageBox.Show("Cập nhập phân quyền và tình trạng đăng nhập thất bại");
            QuanLyTaiKhoan_Load_1(sender, e);
        }
        #endregion

        #region Tim kiem nhan vien
        private void btnTimKiem_Click(object sender, EventArgs e)
        {
            if (txtTenNV.Text == "")
            {
                MessageBox.Show("Bạn chưa điền tên nhân viên");
                txtTenNV.Focus();
                return;
            }
            string sql = "SELECT * FROM NhanVien WHERE (HoTen LIKE '%" + txtTenNV.Text + "%') ";
            if (txtMaNV.Text != "")
            {
                long temp;
                if (long.TryParse(txtMaNV.Text, out temp) == false)
                {
                    MessageBox.Show("Mã nhân viên không được là ký số");
                    txtMaNV.Text = "";
                    txtMaNV.Focus();
                    return;
                }
                sql += "AND (MaNV = " + Convert.ToInt16(txtMaNV.Text) + ") ";
            }
            if (cbNghiepVu.SelectedIndex != -1)
            {
                int temp = cbNghiepVu.SelectedIndex + 1;
                sql += "AND (PhanQuyen = " + temp + ")";
            }
            dt = NhanVienBanSachBUS.TimSach(sql);
            lvDSNV.Items.Clear();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow dr = dt.Rows[i];
                ListViewItem item = new ListViewItem();
                item.Text = dr["MaNV"].ToString();
                item.SubItems.Add(dr["HoTen"].ToString());
                int pq = Convert.ToInt16(dr["PhanQuyen"]);
                string phanquyen = "";
                if (pq == 1)
                    phanquyen = "Admin";
                else if (pq == 2)
                    phanquyen = "Quản lý";
                else if (pq == 3)
                    phanquyen = "Quản lý sách";
                else if (pq == 4)
                    phanquyen = "Kế toán";
                else if (pq == 5)
                    phanquyen = "Bán sách";
                item.SubItems.Add(phanquyen.ToString());
                item.SubItems.Add(dr["TinhTrang"].ToString());
                lvDSNV.Items.Add(item);
            }
            nv.MaNV = 0;
        }
        #endregion

        #region Huy
        private void buttonX4_Click(object sender, EventArgs e)
        {
            txtMaNV.Text = "";
            txtTenNV.Text = "";
            cbNghiepVu.SelectedIndex = -1;
            txtTenNV.Focus();
            QuanLyTaiKhoan_Load_1(sender, e);
        }
        #endregion
    }
}